管理図 と 工程能力 は、時間的な安定性を評価する方法として、品質管理の分野でよく知られています。
1行目は、列名ではなく、1個目のデータとして読み込むようになっています。 そのため、扱うのはすべて数字になっているデータになります。
同じ列は同じグループとして扱われます。 グラフになるのは、列ごとの平均値、範囲、標準偏差といった統計量です。
1行目は、列名ではなく、1個目のデータとして読み込むようになっています。
データは、1列目の並んでいる必要があります。 これがそのままグラフになります。
1行目は、列名ではなく、1個目のデータとして読み込むようになっています。
1列目が、グループ毎のNGの数です。 2列目が、そのグループの総数です。
1行目は、列名ではなく、1個目のデータとして読み込むようになっています。
1列目が、グループ毎の欠点の数です。 2列目が、そのグループの総数です。
1行目は、列名ではなく、1個目のデータとして読み込むようになっています。
1列目が、グループ毎の欠点の数です。
この管理図だけ、1行目が列名になっている必要があります。 多変量解析で扱う、表形式のデータと同じ形態で、すべての変数で行数が同じになっている必要があります。
Newdata <- 1 # 例えば、「2」だと、1行目のデータが学習データになり、2行目以降のデータが、テストデータとして扱われます。
Control_chart_type <- "xbar" # xbar, R, S, xbar.one, p, np, u, c, T2から選びます
setwd("C:/Rtest") # データのあるディレクトリの指定
if(Control_chart_type == "T2"){
Data <- read.csv("Data.csv", header=T) # データの読み込み
} else {
Data <- read.csv("Data.csv", header=F) # データの読み込み
}
library(qcc)
if(Newdata < 2){
if(Control_chart_type == "p" ||Control_chart_type == "np" ||Control_chart_type == "u"){
q1 <- qcc(Data[,1],sizes=Data[,2], type=Control_chart_type)
} else if(Control_chart_type == "c"){
q1 <- qcc(Data[,1], type=Control_chart_type)
} else if(Control_chart_type == "T2"){
q1 <- mqcc(Data, type=Control_chart_type)
} else {
q1 <- qcc(Data,type=Control_chart_type)
}
} else {
if(Control_chart_type == "p" ||Control_chart_type == "np" ||Control_chart_type == "u"){
q1 <- qcc(Data[1:Newdata-1,1],sizes=Data[1:Newdata-1,2], type=Control_chart_type, newdata=Data[Newdata:nrow(Data),1], newsizes=Data[Newdata:nrow(Data),2])
} else if(Control_chart_type == "c"){
q1 <- qcc(Data[1:Newdata-1,1], type=Control_chart_type, newdata=Data[Newdata:nrow(Data),1])
} else if(Control_chart_type == "T2"){
q1 <- mqcc(Data[1:Newdata-1,], type=Control_chart_type, newdata=Data[Newdata:nrow(Data),])
} else {
q1 <- qcc(Data[1:Newdata-1,],type=Control_chart_type, newdata=Data[Newdata:nrow(Data),])
}
}
summary(q1)
xbar管理図とxbar.one管理図については、上のコードの後で、さらに下のコードを使うと、工程能力の分析ができます。
LSL <- "" # xbarとxbar.oneの管理図で工程能力を計算したい時には、ここの数字が下限として使われます。「""」だと計算されません。
USL <- "" # こちらは上限として使われます。
Target <- "" # こちらは目標値として使われます。
if(Control_chart_type == "xbar"){
process.capability(q1, spec.limits=c(LSL,USL),target = Target)
}
if(Control_chart_type == "xbar.one"){
process.capability(q1, spec.limits=c(LSL,USL),target = Target)
}